package com.itcast.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.itcast.admin.domain.CheckupGroup;
import com.itcast.admin.domain.request.CreateGroupReqDTO;
import com.itcast.admin.domain.request.GroupPageReqDTO;
import com.itcast.admin.domain.response.CheckDisableResDTO;
import com.itcast.admin.domain.response.GroupListResDTO;
import com.itcast.admin.domain.response.GroupPageResDTO;
import com.jzo2o.common.model.PageResult;

import java.util.List;

/**
 * <p>
 * 体检组 服务类
 * </p>
 *
 * @author author
 * @since 2024-11-04
 */
public interface ICheckupGroupService extends IService<CheckupGroup> {
    /**
     * 分页查询体检组
     * @param groupPageReqDTO
     * @return
     */
    PageResult<GroupPageResDTO> pageQuery(GroupPageReqDTO groupPageReqDTO);

    /**
     * 新增体检组
     *
     * @param createGroupReqDTO
     */
    void insert(CreateGroupReqDTO createGroupReqDTO);

    /**
     * 根据id查询体检组
     * @param id
     * @return
     */
    CheckupGroup getCheckGroupById(Integer id);

    /**
     * 根据id修改体检组
     * @param id
     * @param createGroupReqDTO
     */
    void updateCheckGroupById(Integer id, CreateGroupReqDTO createGroupReqDTO);

    /**
     * 根据id启用检查组
     * @param id
     */
    void enableCheckGroupById(Integer id);

    /**
     * 根据id删除检查组
     * @param id
     */
    void deleteCheckGroupById(Integer id);

    /**
     * 查询下拉列表
     * @param groupStatus
     */
    List<GroupListResDTO> listForFilter(Integer groupStatus);

    /**
     * 校验检查组是否可以禁用
     * @param id
     * @return
     */
    CheckDisableResDTO checkDisableById(Integer id);

    /**
     * 根据id禁用检查组
     * @param id
     */
    void disableCheckGroupById(Integer id);

}
